Graphics processing subsystems are used to perform graphics rendering in modern computing systems such as desktops, notebooks, and video game consoles, etc. Traditionally, graphics processing subsystems are implemented as either integrated graphics solutions or discrete video cards, and typically include one or more graphics processing units, or “GPUs,” which are specialized processors designed to efficiently perform graphics processing operations
Integrated graphics solutions are graphics processors that utilize a portion of a computer's system memory rather than having their own dedicated memory. Due to this arrangement, integrated graphics subsystems are typically localized in close proximity to, if not disposed directly upon, some portion of the main circuit board (e.g., a motherboard) of the computing system. Integrated graphics subsystems are, in general, cheaper to implement than discrete video cards, but typically have lower capability and operate at reduced performance levels relative to discrete graphics processing subsystems.
Discrete or “dedicated” video cards are distinguishable from integrated graphics solutions by having local memory dedicated for use by the graphics processing subsystem which is not shared with the underlying computer system. Commonly, discrete graphics processing subsystems are implemented on discrete circuit boards called “video cards” which include, among other components, one or more GPUs, the local memory, communication buses and various output terminals. These video cards typically interface with the main circuit board of a computing system through a standardized expansion slot such as PCI Express (PCIe) or Accelerated Graphics Port (AGP), upon which the video card may be mounted. In general, discrete graphics processing subsystems are capable of significantly higher performance levels relative to integrated graphics processing subsystems. However, discrete graphics processing subsystems also typically require their own separate power inputs, and require higher capacity power supply units to function properly. Consequently, discrete graphics processing subsystems also have higher rates of power consumption relative to integrated graphics solutions.
Some modern main circuit boards often include two or more graphics subsystems. For example, common configurations include an integrated graphics processing unit as well as one or more additional expansion slots available to add a dedicated graphics subsystem. For mobile computing devices implemented according to these configurations, typically only one of the graphics processing subsystems (generally the integrated graphics processing subsystem) will have an output terminal, typically with one or more ports corresponding to one or more audio/visual standards (e.g., VGA, HDMI, DVI, etc.), for connecting to a display device.
Typically, only one of the graphics processing subsystems will be running in the computing system at any one time, with heavier graphics processing loads being allocated to the dedicated or discrete graphics processing subsystem for processing. Since typical configurations do not include a direct display connection between the discrete graphics processing subsystem and a coupled display device, graphical output rendered by the discrete graphics processing subsystem is often stored in system memory, where it is retrieved by the integrated graphics processing subsystem and presented to the coupled display device in a “pipeline” arrangement.
In general, rendering at the highest framerates possible is preferable to the application's user or viewer. This is especially true for computing gaming applications. However, rendering at a constantly high framerates is not always possible as executing applications may be sending an ever changing amount of data to render. On many applications, the framerate may vary widely between scenes or even individuals frames between scenes, depending on the complexity of the scene being rendered. Naturally, experiencing large variance or inconsistencies in framerate is undesirable and may negatively impact the application user's viewing experience.